package cn.edu.cug.cs.gtl.docsrv.img.updater;

import cn.edu.cug.cs.gtl.docsrv.img.block.ImageBlock;
import cn.edu.cug.cs.gtl.docsrv.img.manager.ImgManager;
import cn.edu.cug.cs.gtl.mybatis.mapper.img.ImgAll;

import java.math.BigDecimal;

public class DefaultBlockUpdater implements BlockUpdater{
    ImgManager manager;

    public DefaultBlockUpdater(ImgManager manager) {
        this.manager = manager;
    }

    /**
     * 将一个ImageBlock插入数据库
     *
     * @param block 图形块
     * @return 成功返回true, 否则返回false
     */
    @Override
    public boolean insert(ImageBlock block) {
        return this.manager.insert(block.getImgAll());
    }

    /**
     * 读取本地目录中的所有图形文档，将其插入图形库中
     *
     * @param localDir 本地目录
     * @return 成功返回true, 否则返回false
     */
    @Override
    public boolean insert(String localDir) {
        return this.manager.insert(localDir);
    }

    /**
     * 根据imgInternalId删除文档记录
     *
     * @param block 必须填充imgInternalId
     * @return 成功返回true, 否则返回false
     */
    @Override
    public boolean delete(ImageBlock block) {
        return this.manager.delete(block.getImgAll());
    }

    /**
     * 根据imgInternalId删除文档记录
     *
     * @param imgInternalId
     * @return 成功返回true, 否则返回false
     */
    @Override
    public boolean delete(BigDecimal imgInternalId) {
        ImgAll imgAll=new ImgAll();
        imgAll.setImgInternalId(imgInternalId);
        return this.manager.delete(imgAll);
    }

    /**
     * 根据imgInternalId更新数据库中的记录
     *
     * @param block 该对象的imgInternalId必须填充
     * @return 更新成功返回true, 否则返回false
     */
    @Override
    public boolean update(ImageBlock block) {
        return this.manager.update(block.getImgAll());
    }
}
